
#include <stdio.h>      // 标准输入输出
#include <unistd.h>     // POSIX标准接口

#include "ohos_init.h"  // 用于初始化服务(services)和功能(features)
#include "cmsis_os2.h"  // CMSIS-RTOS API V2

#include "iot_gpio.h"   // OpenHarmony HAL：IoT硬件设备操作接口-GPIO
#include "hi_io.h"      // 海思 Pegasus SDK：IoT硬件设备操作接口-IO
#include "hi_adc.h"     // 海思 Pegasus SDK：IoT硬件设备操作接口-ADC
// 定义一个宏，用于标识ADC3通道（MQ-2可燃气体传感器）
#define GAS_SENSOR_CHAN_NAME HI_ADC_CHANNEL_3  //即GPIO_07引脚

// 将ADC值转换为电压值
static float ConvertToVoltage(unsigned short data)
{
    return (float)data * 1.8 * 4 / 4096;
}

// 获取可燃气体浓度
int GetSoundLevel()
{
    // 用于接收声音传感器的值
    unsigned short data = 0;

    // 读取ADC3通道的值
    if (hi_adc_read(GAS_SENSOR_CHAN_NAME, &data, HI_ADC_EQU_MODEL_4,
                    HI_ADC_CUR_BAIS_DEFAULT, 0) == HI_ERR_SUCCESS)
    {

        // 转换为电压值
        float Vx = ConvertToVoltage(data);


        // 日志输出ADC值
        //printf("ADC_VALUE = %d,Voltage = %f\n", data,Vx);

        // 返回燃气传感器的ADC值
        return data;
    }

    // 读取失败返回0
    return 0;
}
